#include <stdio.h>
#define MaxSize 100
typedef int DataType;
typedef struct
{DataType list[MaxSize];
	int size;
}SeqList;

void ListInitiate(SeqList *L)
{
	L->size = 0;
}

int ListLength(SeqList L){
	return L.size;
}
int ListInsert(SeqList *L,int i,DataType x)
{
	int j;
	if (L->size>=MaxSize)
	{
		printf("顺序表已满无法插入！\n");
		return 0;
	}
	else if(i<0||i>L->size)
	{
		printf("参数i不合法！\n");
		return 0;
	}
	else{
		for(j = L->size;j>i;j--)
			L->list[j]=L->list[j-1];
		L->list[i] = x;
		L->size++;
		return 1;
	}
}

int ListDelete(SeqList *L,int i,DataType *x)
{
	int j;
	if(L->size<=0)
	{
		printf("顺序表已空无数据元素可删！\n");
		return 0;
	}
	else if(i<0||i >L->size-1)
	{
		printf("参数i不合法");
		return 0;
	}
	else {
		*x =L->list[i];
		for ( j = i+1; j <= L->size-1; j++)
			L->list[j-1] =L->list[j];
		L->size--;
		return 1;
	}
}

int ListGet(SeqList L,int i,DataType *x)
{
	if(i<0||i>L.size-1)
	{
		printf("参数不合法！\n");
		return 0;
	} else{
		*x =L.list[i];
		return 1;
	}
}

int ListSearch(SeqList L,DataType x){
	int j = -1;
	for (int i = 0; i <L.size ; i++) {
		if(L.list[i] == x)j=i;
	}
	return j;
	
}
int main( int argc,char * argv[])
{ SeqList  myList;
	int i,x;
	ListInitiate(&myList);
	for (i = 0; i < 10; i++){
		ListInsert(&myList,i,i+1);
	}
	ListDelete(&myList,5,&x);
	for (i = 0;i  < ListLength(myList); i++) {
		ListGet(myList,i,&x);
		printf("%d",x);
	}
	printf("\t%d",ListSearch(myList,9));
	printf("\t%d",ListSearch(myList,11));
	
	return 0;
}
